Взаимосвязи
Соответствующая информация хранится в отдельных бизнес-объектах внутри базы данных. Когда вы определяете взаимосвязи между различными бизнес-объектами, приложение использует их для поиска связанной информации.
Например, вам нужно позвонить пользователю и задать вопросы о зарегистрированной им проблеме. Телефонные номера пользователя записаны в бизнес-объекте "ПОЛЬЗОВАТЕЛЬ"; проблемы же записаны в бизнес-объект "ПРОБЛЕМА". Когда вы укажете искомую проблему, приложение будет искать номер телефона на основании взаимосвязи между двумя бизнес-объектами. Приложение не сохраняет номер телефона после каждой регистрации проблем пользователем – оно делает это один раз в родственном для пользователя бизнес-объекте.
Взаимосвязи объектов и коллекций
Существует два типа взаимосвязей:
Взаимосвязь объектов – Во взаимосвязи между объектами A и B связь с объектом A создается в объекте B, но не создается связи B с A.
Это полезно, если нужно выбрать одно значение объекта A в объекте B. Например, если вам необходимо выбрать объект Пользователь в объекте Запрос.
Взаимосвязь коллекций – Позволяет вам создавать множество родственных объектов в главном объекте и открывать главный объект в любых связанных объектах: связь с объектом A создается в объекте B, и взаимосвязь коллекции с объектом B создается в объекте A.
Это полезно, если вы хотите создать несколько экземпляров родственного объекта из главного объекта. Например, если нужно добавить Примечания в объект Запрос.
Избегайте создания неограниченных коллекций, так как это отрицательно влияет на производительность системы. Неограниченные коллекции, скорее всего, продолжат расти с увеличением размера базы данных. Например, инцидент "Инцидент-Примечания" является ограниченной коллекцией, так как инциденты закрываются после определенного периода времени, и другие примечания уже не добавляются в них. Однако коллекция "Пользователь-Инциденты" является неограниченной, так как количество объектов в коллекции растет с увеличением числа зарегистрированных инцидентов для каждого пользователя. Если вы хотите отобразить инциденты, зарегистрированные для каждого пользователя, необходимо создать запрос.